Muitas vezes desejamos executar algum comando ou iniciar serviços na inicialização do Sistema Operacional. É muito simples executar essa operação usando o Debian ou o Ubuntu.
Veja abaixo um passo-a-passo e um exemplo usando uma instalação manual do Servidor WEB Apache.
Todos os comandos precisam ser executados como root.
Primeiramente, vamos criar um script chamado meuScript em /etc/init.d com uma estrutura semelhante à abaixo:
#!/bin/bash # # /etc/init.d/meuScript case "$1" in start) echo "Iniciando serviço..." # comando para iniciar o serviço ;; stop) echo "Parando serviço..." # comando para parar o serviço ;; restart) echo "Reiniciando serviço..." # comando para reiniciar o serviço ;; *) echo "Operação inválida" ;; esac |
Dê permissão de execução para o script:
# chmod +x meuScript |
A partir desse momento você já pode executar os comandos abaixo:
# /etc/init.d/meuScript start # /etc/init.d/meuScript stop # /etc/init.d/meuScript restart |
Para inserir o script na inicialização do sistema, usamos o comando update-rc.d da seguinte maneira:
# update-rc.d meuScript defaults |
O “meuScript” é o nome do script em /etc/init.d, não o caminho completo a ele, ou seja, não importa em qual diretório você está, apenas coloque o nome do script.
O “defaults” indica que desejamos inserir o script nos runlevels padrões do sistema.
Ao executar esse comando, um warning será mostrado, apesar de o comando ter funcionado. Aparecerá uma mensagem como esta:
“update-rc.d: warning: /etc/init.d/meuScript missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>”
Você pode ignorá-lo ou inserir as informações de LSB, o que é mostrado no link exibido no warning. É algo bem simples. =)
Para remover um script da inicialização:
# update-rc.d -f meuScript remove |
Como prometi, vou mostrar um exemplo que uso para uma instalação manual do Apache:
#!/bin/bash # # /etc/init.d/apache2 ### BEGIN INIT INFO # Provides: apache2 # Required-Start: $local_fs $syslog # Required-Stop: $local_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Apache at boot # Description: Start Apache HTTP Server ### END INIT INFO # Path to Apache controller BIN=/usr/local/apache2/bin/apachectl function startApache() { echo "Starting Apache..." $BIN start } function stopApache() { echo "Stopping Apache..." $BIN stop } case "$1" in start ) startApache if [ $? -eq 0 ] then echo "OK." fi ;; stop ) stopApache if [ $? -eq 0 ] then echo "OK." fi ;; restart ) stopApache sleep 1 startApache if [ $? -eq 0 ] then echo "OK." fi ;; * ) echo "Invalid option" ;; esac |
Roberto Beraldo
Latest posts by Roberto Beraldo (see all)
- Não Tenha Preguiça de Ler! - 25/04/2016
- Como Atualizar Scripts PHP de MySQL Para MySQLi - 29/10/2015
- Como usar PDO com banco de dados MySQL - 10/09/2015